<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeScanTaskDetails response structure.
 *
 * @method array getScanTaskDetailList() Obtain List of scan task information
 * @method void setScanTaskDetailList(array $ScanTaskDetailList) Set List of scan task information
 * @method integer getTotalCount() Obtain Total number
 * @method void setTotalCount(integer $TotalCount) Set Total number
 * @method integer getScanMachineCount() Obtain Total number of scanned machines
 * @method void setScanMachineCount(integer $ScanMachineCount) Set Total number of scanned machines
 * @method integer getRiskMachineCount() Obtain Number of machines with risks detected
 * @method void setRiskMachineCount(integer $RiskMachineCount) Set Number of machines with risks detected
 * @method string getScanBeginTime() Obtain Scan start time
 * @method void setScanBeginTime(string $ScanBeginTime) Set Scan start time
 * @method string getScanEndTime() Obtain Scan end time
 * @method void setScanEndTime(string $ScanEndTime) Set Scan end time
 * @method integer getScanTime() Obtain Scan time
 * @method void setScanTime(integer $ScanTime) Set Scan time
 * @method integer getScanProgress() Obtain Scan progress
 * @method void setScanProgress(integer $ScanProgress) Set Scan progress
 * @method integer getScanLeftTime() Obtain Remaining scan time
 * @method void setScanLeftTime(integer $ScanLeftTime) Set Remaining scan time
 * @method array getScanContent() Obtain Scan content
 * @method void setScanContent(array $ScanContent) Set Scan content
 * @method array getVulInfo() Obtain Vulnerability information
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setVulInfo(array $VulInfo) Set Vulnerability information
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getRiskEventCount() Obtain Number of risk events
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setRiskEventCount(integer $RiskEventCount) Set Number of risk events
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getType() Obtain 0: one-click scan; 1: scheduled scan.Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setType(integer $Type) Set 0: one-click scan; 1: scheduled scan.Note: This field may return null, indicating that no valid values can be obtained.
 * @method boolean getStoppingAll() Obtain Whether all tasks are being stopped. true: yes.Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setStoppingAll(boolean $StoppingAll) Set Whether all tasks are being stopped. true: yes.Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getVulCount() Obtain Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setVulCount(integer $VulCount) Set Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeScanTaskDetailsResponse extends AbstractModel
{
    /**
     * @var array List of scan task information
     */
    public $ScanTaskDetailList;

    /**
     * @var integer Total number
     */
    public $TotalCount;

    /**
     * @var integer Total number of scanned machines
     */
    public $ScanMachineCount;

    /**
     * @var integer Number of machines with risks detected
     */
    public $RiskMachineCount;

    /**
     * @var string Scan start time
     */
    public $ScanBeginTime;

    /**
     * @var string Scan end time
     */
    public $ScanEndTime;

    /**
     * @var integer Scan time
     */
    public $ScanTime;

    /**
     * @var integer Scan progress
     */
    public $ScanProgress;

    /**
     * @var integer Remaining scan time
     */
    public $ScanLeftTime;

    /**
     * @var array Scan content
     */
    public $ScanContent;

    /**
     * @var array Vulnerability information
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $VulInfo;

    /**
     * @var integer Number of risk events
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $RiskEventCount;

    /**
     * @var integer 0: one-click scan; 1: scheduled scan.Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $Type;

    /**
     * @var boolean Whether all tasks are being stopped. true: yes.Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $StoppingAll;

    /**
     * @var integer Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $VulCount;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param array $ScanTaskDetailList List of scan task information
     * @param integer $TotalCount Total number
     * @param integer $ScanMachineCount Total number of scanned machines
     * @param integer $RiskMachineCount Number of machines with risks detected
     * @param string $ScanBeginTime Scan start time
     * @param string $ScanEndTime Scan end time
     * @param integer $ScanTime Scan time
     * @param integer $ScanProgress Scan progress
     * @param integer $ScanLeftTime Remaining scan time
     * @param array $ScanContent Scan content
     * @param array $VulInfo Vulnerability information
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $RiskEventCount Number of risk events
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $Type 0: one-click scan; 1: scheduled scan.Note: This field may return null, indicating that no valid values can be obtained.
     * @param boolean $StoppingAll Whether all tasks are being stopped. true: yes.Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $VulCount Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("ScanTaskDetailList",$param) and $param["ScanTaskDetailList"] !== null) {
            $this->ScanTaskDetailList = [];
            foreach ($param["ScanTaskDetailList"] as $key => $value){
                $obj = new ScanTaskDetails();
                $obj->deserialize($value);
                array_push($this->ScanTaskDetailList, $obj);
            }
        }

        if (array_key_exists("TotalCount",$param) and $param["TotalCount"] !== null) {
            $this->TotalCount = $param["TotalCount"];
        }

        if (array_key_exists("ScanMachineCount",$param) and $param["ScanMachineCount"] !== null) {
            $this->ScanMachineCount = $param["ScanMachineCount"];
        }

        if (array_key_exists("RiskMachineCount",$param) and $param["RiskMachineCount"] !== null) {
            $this->RiskMachineCount = $param["RiskMachineCount"];
        }

        if (array_key_exists("ScanBeginTime",$param) and $param["ScanBeginTime"] !== null) {
            $this->ScanBeginTime = $param["ScanBeginTime"];
        }

        if (array_key_exists("ScanEndTime",$param) and $param["ScanEndTime"] !== null) {
            $this->ScanEndTime = $param["ScanEndTime"];
        }

        if (array_key_exists("ScanTime",$param) and $param["ScanTime"] !== null) {
            $this->ScanTime = $param["ScanTime"];
        }

        if (array_key_exists("ScanProgress",$param) and $param["ScanProgress"] !== null) {
            $this->ScanProgress = $param["ScanProgress"];
        }

        if (array_key_exists("ScanLeftTime",$param) and $param["ScanLeftTime"] !== null) {
            $this->ScanLeftTime = $param["ScanLeftTime"];
        }

        if (array_key_exists("ScanContent",$param) and $param["ScanContent"] !== null) {
            $this->ScanContent = $param["ScanContent"];
        }

        if (array_key_exists("VulInfo",$param) and $param["VulInfo"] !== null) {
            $this->VulInfo = [];
            foreach ($param["VulInfo"] as $key => $value){
                $obj = new VulDetailInfo();
                $obj->deserialize($value);
                array_push($this->VulInfo, $obj);
            }
        }

        if (array_key_exists("RiskEventCount",$param) and $param["RiskEventCount"] !== null) {
            $this->RiskEventCount = $param["RiskEventCount"];
        }

        if (array_key_exists("Type",$param) and $param["Type"] !== null) {
            $this->Type = $param["Type"];
        }

        if (array_key_exists("StoppingAll",$param) and $param["StoppingAll"] !== null) {
            $this->StoppingAll = $param["StoppingAll"];
        }

        if (array_key_exists("VulCount",$param) and $param["VulCount"] !== null) {
            $this->VulCount = $param["VulCount"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
